package com.egoo.ticket.server.service;

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.egoo.ticket.server.utils.common.DbResponse;

import java.util.List;
import java.util.Set;

public interface EurmDataSyncService {
	/**
	 * TODO 增量同步用户数据
	 * @author: victor_tang
	 * @createtime: 2020/12/8 17:44
	 * @param jsonObject 1
	 * @return: com.egoo.ticket.server.utils.common.DbResponse
	 */
	DbResponse syncUser(JSONObject jsonObject);
	/**
	 * TODO 增量同步角色数据
	 * @author: victor_tang
	 * @createtime: 2020/12/8 17:44
	 * @param jsonObject 1
	 * @return: com.egoo.ticket.server.utils.common.DbResponse
	 */
	DbResponse syncRole(JSONObject jsonObject);
	/**
	 * TODO 增量同步行政组数据
	 * @author: victor_tang
	 * @createtime: 2020/12/8 17:44
	 * @param jsonObject 1
	 * @return: com.egoo.ticket.server.utils.common.DbResponse
	 */
	DbResponse syncDept(JSONObject jsonObject);
	/**
	 * TODO 获取内管数据对象总数
	 * @author: victor_tang
	 * @createtime: 2020/12/8 17:45
	 * @param dataType 1
	 * @param filters 2
	 * @return: java.lang.Integer
	 */
	Integer getEurmCountByDataType(String dataType, JSONArray filters);
	/**
	 * TODO 获取内管对应数据列表
	 * @author: victor_tang
	 * @createtime: 2020/12/8 17:46
	 * @param conditionJsonObject 1
	 * @return: com.alibaba.fastjson.JSONArray
	 */
	JSONArray getEurmDataByCondition(JSONObject conditionJsonObject);
	/**
	 * TODO 批量同步内管用户、角色、行政组查询参数至mq
	 * @author: victor_tang
	 * @createtime: 2020/12/8 17:46
	 * @param tenantId 1
	 * @param dataType 2
	 * @return: void
	 */
	void batchPushSynPramaToMq(String tenantId, String dataType);
	/**
	 * TODO 批量同步用户信息
	 * @author: victor_tang
	 * @createtime: 2020/12/8 17:44
	 * @param conditionJsonObject 1
	 * @return: com.egoo.ticket.server.utils.common.DbResponse
	 */
	DbResponse batchSynUserData(JSONObject conditionJsonObject);
	/**
	 * TODO 批量同步角色信息
	 * @author: victor_tang
	 * @createtime: 2020/12/8 17:44
	 * @param conditionJsonObject 1
	 * @return: com.egoo.ticket.server.utils.common.DbResponse
	 */
	DbResponse batchSynRoleData(JSONObject conditionJsonObject);
	/**
	 * TODO 批量同步行政组信息
	 * @author: victor_tang
	 * @createtime: 2020/12/8 17:44
	 * @param conditionJsonObject 1
	 * @return: com.egoo.ticket.server.utils.common.DbResponse
	 */
	DbResponse batchSynDeptGroupData(JSONObject conditionJsonObject);


    List getRestDay(Integer year);

    DbResponse initDBData(List<String> arrayList);

	List<String> getTenant();

    DbResponse syncTenant(JSONObject jsonObject);
}
